''' 通用的工具函数 '''

# 将对象序列化为CSV格式的字符串
def objectToCSV(object, fields=None):
    csv = ''
    if object is not None:
        # 如果没有显示传入需要展示的字段，则展示对象所有字段
        fields = fields or object.keys()
        last = len(fields) - 1
        for i, field in enumerate(fields):
            if 'url' in field.lower():
                # 约定规范：带url字符串的字段，加上超链接，可以在CSV文件里直接点击跳转
                csv += '=HYPERLINK(\"' + (object[field] or '') + '\")'
            else:
                # 拼接字段，替换\xa0（即&nbsp;）和换行符
                csv += '\"' + (object[field] or '').replace('\xa0', ' ').replace('\n', '') + '\"'
            if i == last:
                # 最后一个字段加上换行符
                csv += '\n'
            else:
                # 字段间用英文逗号连接
                csv += ','
    return csv

# 将对象字段序列化为CSV格式的表头字符串
def getCSVHeader(object, fields=None):
    header = ''
    if object is not None:
        # 如果没有显示传入需要展示的字段，则展示对象所有字段
        fields = fields or object.keys()
        last = len(fields) - 1
        for i, field in enumerate(fields):
            # 拼接字段，替换\xa0（即&nbsp;）和换行符
            header += '\"' + field.replace('\xa0', ' ').replace('\n', '') + '\"'
            if i == last:
                # 最后一个字段加上换行符
                header += '\n'
            else:
                # 字段间用英文逗号连接
                header += ','
    return header

# 格式化UTC时间字符串
def formatTime(utcStr):
    return utcStr[:10]
